package cn.sys.mapper;


import cn.sys.domain.Menu;
import cn.sys.domain.MenuExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MenuMapper {


    // 查询所有菜单
    List<Menu> findAllMenu();

    long countByExample(MenuExample example);

    int deleteByExample(MenuExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    List<Menu> selectByExample(MenuExample example);

    Menu selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByExample(@Param("record") Menu record, @Param("example") MenuExample example);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);

    // 查询所有菜单
    List<Menu> queryAllMenu(Menu menu);

    // 根据pid查询子菜单数量
    Integer queryMenuByPid(@Param("pid") Integer pid);

    // 根据菜单id 删除sys_role_menu表中的数据
    public void deleteRoleMenuByMid(@Param("mid") Integer mid);

    // 根据角色id查询当前角色拥有的菜单
    List<Menu> queryMenuByRoleId(@Param("available") Integer available, @Param("rid") Integer rid);


    /***********************************************************************************************/
    //根据用户id查询用户的可用菜单
    List<Menu> queryMenuByUid(@Param("available") Integer available, @Param("uid") Integer userId);
}